#include<stdio.h>
typedef struct num{
    long long value;
    num *left,*right;
};
num *list=NULL;
long long a,b,c;
long long abs(long long x){
    return x>0?x:-x;
}
long long insert(long long x){
    num *q=list,*p=list;
    long long min=-1,lech;
    while(p!=NULL){
        q=p;
        if((*p).value==x)return 0;
        lech=abs((*p).value-x);
        if(min==-1 || (min>0 && lech<min)) min=lech;
        if((*p).value>x)p=(*p).left;
        else p=(*p).right;
    }
    p=new num;
    (*p).value=x;
    (*p).left=(*p).right=NULL;
    if(list!=NULL){
        if(x>(*q).value)
            (*q).right=p;
        else (*q).left=p;
    }else list=p;
    return min;
}
long long init(){
    scanf("%lld%lld%lld",&a,&b,&c);
    insert(a);
    long long y=insert(b);
    long long z=insert(c);
    return y<z?y:z;
}
long long process(){
    long long num=1;
    long long a=init(),lasta;
    if(a==0)return 0;
    do{
        num++;
        lasta=a;
        a=insert(a);
        if(a>lasta)a=lasta;
    }while(a>0);
    return num;
}
int main(){
    printf("%lld",process());
    return 0;
}
